package com.endava.service;

import java.util.List;

import com.endava.model.Employee;

/**
 * Contract used by SERVICE layer to make operations for all employees.
 * 
 * @author acojocar
 * 
 */
public interface EmployeeService {

	public static final String LOGIN_PAGE = "login";
	public static final String APP_CONTEXT = "appContext.xml";
	public static final String EMP_SERVICE_BEAN = "empService";
	public static final String LOG_SERVICE_BEAN = "loginService";
	public static final String USER_PAGE = "welcome_user";
	public static final String ADMIN_PAGE = "welcome_admin";
	public static final String FAIL_PAGE = "fail";
	public static final String EDIT_PAGE = "edit";
	public static final String ERROR_PAGE = "error";

	/**
	 * Returns a <code>List</code> of all employees from database
	 * 
	 * @return <code>List</code> of <code>Employee</code>s
	 */
	public List<Employee> getAllEmployees();

	/**
	 * Returns the <code>Employee</code> data by the <code>Login</code>
	 * credential.
	 * 
	 * @param username
	 *            credential
	 * @return <code>Employee</code> bean
	 */
	public Employee getUserData(String username);

	public Employee deleteEmployeeById(int id);

	public Employee getEmployeeById(int id);

	public Employee updateEmployee(int id, String department, double salary);

}
